<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of eVoucherClass
 *
 * @author USUARIO
 */
class blockCarClass {


     public function bloquearTarjeta($cardNumber,$operacion="BLOCK_CARD",$mensaje="bloqueo")
    {
        $arrayRespuesta = array("success"=>false,"message"=>"error","object"=>null);
        try
        {
              $headers = array('Content-Type: application/octet-stream','Content-length: 10000000');
              /* -primero vamos a obtener la url que esta en el archivo de configuracion*/
              $urlSinParametros = sfConfig::get('app_bloquear_tarjeta');
              /* -segundo vamos a armar la url concatenando los parametros de user y password */
              $urlList      = $urlSinParametros.$operacion."/".$cardNumber.'/'.$operacion;

              /*aca obtengo la cookie guardada para realizar la transaccion*/
              $usuarioActual = sfContext::getInstance()->getUser()->getAttribute(sfConfig::get('app_name_session'));

              $handle   = curl_init();
              curl_setopt($handle, CURLOPT_URL,$urlList);
              curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
              curl_setopt($handle, CURLOPT_HEADER, true);
              curl_setopt($handle, CURLOPT_COOKIE, $usuarioActual->getJsessionId());
              curl_setopt($handle, CURLOPT_RETURNTRANSFER, true );
              curl_setopt($handle, CURLOPT_POST,true);
              $response = curl_exec($handle);

              $matches = array();
              preg_match('#HTTP/\d+\.\d+ (\d+)#', $response, $matches);


              $respuestaSuccess = $matches[1];

              /*si la respuesta es OK*/
              if($respuestaSuccess==200 || $respuestaSuccess==100 )
              {
                  $arrayRespuesta['success'] = true;

              }
              else
              {
                  $respuestaError = $this->getMensageError($response);
                  $arrayRespuesta['object'] = $respuestaError['code'];
              }
              curl_close($handle);
        }
        catch (Exception $e)
        {
           $arrayRespuesta['message'] = $e->getMessage();
           curl_close($handle);
        }

        return $arrayRespuesta;

    }
        private function getMensageError($response)
    {

            $arrayRespuesta = array("success"=>true,"message"=>"error","code"=>-1);
            $matches = array();
            preg_match_all ("/<title>(.*)<\/title>/", $response, $matches);
            $respuestaError =  $matches[1][0];
            if($respuestaError=="400 103")
            {
                $arrayRespuesta['message'] = "deposito no encontrado";
                $arrayRespuesta['code'] = 103;
            }
            elseif($respuestaError=="400 104")
            {
                $arrayRespuesta['message'] = "deposito es EL";
                $arrayRespuesta['code'] = 104;
            }
            elseif($respuestaError=="400 105")
            {
                $arrayRespuesta['message'] = "valor de MR es negativo";
                $arrayRespuesta['code'] = 105;
            }
            elseif($respuestaError=="400 106")
            {
                $arrayRespuesta['message'] = "cantidad de símbolos después de la coma es incorrecta";
                $arrayRespuesta['code'] = 106;
            }
            elseif($respuestaError=="400 107")
            {
                $arrayRespuesta['message'] = "superado el valor máximo de la RR";
                $arrayRespuesta['code'] = 107;
            }
            elseif($respuestaError=="400 108")
            {
                $arrayRespuesta['message'] = "cuenta de cliente no encontrada";
                $arrayRespuesta['code'] = 108;
            }
            elseif($respuestaError=="400 109")
            {
                $arrayRespuesta['message'] = "faltan fondos en la cuenta para la creación de la RR";
                $arrayRespuesta['code'] = 109;
            }

            elseif($respuestaError=="400 110")
            {
                $arrayRespuesta['message'] = "faltan fondos en la cuenta para la creación del RtR";
                $arrayRespuesta['code'] = 110;
            }
             elseif($respuestaError=="400 111")
            {
                $arrayRespuesta['message'] = "Existe un pedoido no enviado para el blñoqueo de tarjeta";
                $arrayRespuesta['code'] = 110;
            }

            elseif($respuestaError=="400 113")
            {
                $arrayRespuesta['message'] = "no hay privilegios de acceso para la creacion de los pedidos para MR en las tarjetas de otro portador";
                $arrayRespuesta['code'] = 113;
            }
             elseif($respuestaError=="400 114")
            {
                $arrayRespuesta['message'] = "El comentario tiene mas de 40 simbolos";
                $arrayRespuesta['code'] = 110;
            }
             elseif($respuestaError=="400 115")
            {
                $arrayRespuesta['message'] = " comentario contiene símbolos prohibidos ( ' & > <)";
                $arrayRespuesta['code'] = 115;
            }



              elseif($respuestaError=="400 401")
            {
                $arrayRespuesta['message'] = "no hay permisos para la creacion de pedidos para el bloqueo de tarjeta";
                $arrayRespuesta['code'] = 401;
            }
               elseif($respuestaError=="400 500")
            {
                $arrayRespuesta['message'] = "Error de servidor";
                $arrayRespuesta['code'] = 500;
            }

            else
            {
                $arrayRespuesta['message'] = "ups, algo se rompio";
                $arrayRespuesta['code'] = 88;
            }
            return $arrayRespuesta;

    }





}

?>
